The present invention relates to a device and a process for handling the execution of a job in a data processing system.
It applies to the field of data processing operations in an industrial environment and particularly to data processing systems of the xe2x80x9copenxe2x80x9d type running, for example, on software of the xe2x80x9cUNIXxe2x80x9d or xe2x80x9cWINDOWS NTxe2x80x9d type. The servers that run on this type of software are called xe2x80x9copenxe2x80x9d servers, and are highly valued at the present time.
The drawback of these servers is that they were developed for academic applications whose purposes were not the same as those for industrial purposes. Thus, in a xe2x80x9cUNIXxe2x80x9d operating system, the jobs, or more precisely each of the processes comprising the jobs are assigned an initial priority, either by the system or by the user who enters these jobs. In order for a job to be considered by the system to have a higher priority, the user must explicitly assign it an initial priority, or manually modify its priority using an administrative command. Thus, there is no control over or inter-correlation between the priority levels assigned to one job or another.
Likewise, in a standard xe2x80x9cUNIXxe2x80x9d system, the processes can start up without any limitation, even in heavily loaded systems, without any attention to the number of resources currently being used by the processes executed and without any attention to the number of resources the new process will require. This results in the following undesirable behavior: a group of processes is executed, the critical processes as well as the non-critical processes, and the critical processes, which must be completed at a time desired by the user, have too few resources available to be completed at the desired time. At the same time, non-critical processes are using too many resources.
Another unacceptable behavior is that in which there are not enough temporary files available and consequently, the write operations into the files fail. Sometimes, the application controls this error condition, sometimes it does not control it, and this can generate a false behavior due to the fact that incomplete files are generated in one step of a job and processed in subsequent steps. Another detrimental behavior is that in which there is not enough paging space and the system makes the arbitrary decision to kill the most recent process without considering its importance. This is unacceptable in an operating environment.
That is why the primary object of the invention is to propose a process for handling the execution of a job which makes it possible to eliminate these drawbacks.
This object is achieved as a result of the fact that the process for handling the execution of a job in an open data processing system (for example of the xe2x80x9cUNIXxe2x80x9d type) as a function of the resources is characterized in that it comprises the following steps:
determining the resources available in virtual memory, real memory, temporary file space, central processing unit utilization time during the last time interval;
computing the amount of resources preallocated to other requests and not yet used;
comparing the amount of resources required for the execution of a job for which the request has been presented to the current amount of resources available minus the total amount of resources preallocated to other requests, in order to determine as a function of the result of this comparison the start, the deference or the denial of the start of the job requested.
According to another characteristic, the process includes a step comprised of defining the amount of resources required for the execution of a job by a specific command.
According to another characteristic, the process includes a step comprised of activating or deactivating the mechanism for determining whether there are enough system resources available.
Another object of the invention is to propose a device for handling the execution of a job.
In accordance with this object, the device for handling the execution of a job in an open operating system is characterized in that it comprises:
means for determining the resources available in virtual memory, real memory, temporary file space, central processing unit utilization time during a given time interval;
means for computing the amount of resources preallocated to other requests but not yet used;
means for comparing the amount of resources required for the execution of a job for which the request has been presented to the current amount of resources available minus the total amount of resources preallocated to other requests;
and means for controlling the start, the deference or the denial of the start of the job requested as a function of the result supplied by the comparing means.
According to another characteristic, the device comprises a means for defining the amount of resources required for the execution of a job by a specific command.
According to another characteristic, the device comprises a means for activating or deactivating the mechanism for determining whether there are enough system resources available.